Analytic
Get a campaign hourly metric
Retrieves hourly campaign metrics for the specified time range.
If the requested time range exceeds 3 days, the data granularity will automatically switch from hourly to daily aggregation.
POST
/
metric
/
campaigns_hourly
Get a campaign hourly metric
curl --request POST \
--url https://your_a2_service/metric/campaigns_hourly \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"campaign_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"from_datetime": "2023-11-07T05:31:56Z",
"to_datetime": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://your_a2_service/metric/campaigns_hourly"
payload = {
"campaign_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"from_datetime": "2023-11-07T05:31:56Z",
"to_datetime": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
campaign_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
from_datetime: '2023-11-07T05:31:56Z',
to_datetime: '2023-11-07T05:31:56Z'
})
};
fetch('https://your_a2_service/metric/campaigns_hourly', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://your_a2_service/metric/campaigns_hourly",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'campaign_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'from_datetime' => '2023-11-07T05:31:56Z',
'to_datetime' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your_a2_service/metric/campaigns_hourly"
payload := strings.NewReader("{\n \"campaign_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"from_datetime\": \"2023-11-07T05:31:56Z\",\n \"to_datetime\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://your_a2_service/metric/campaigns_hourly")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"campaign_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"from_datetime\": \"2023-11-07T05:31:56Z\",\n \"to_datetime\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your_a2_service/metric/campaigns_hourly")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"campaign_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"from_datetime\": \"2023-11-07T05:31:56Z\",\n \"to_datetime\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body[
{
"ad_revenue": 123,
"cid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tagid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z",
"budget_spent": 0,
"click": 0,
"conversion": 0,
"cpa": 0,
"cpc": 0,
"cpm": 0,
"impression": 0,
"reach": 0,
"roas": 0
}
]{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
application/json
Response
Successful Response
Ad Revenue
The campaign ID
The placement ID
The hourly timestamp of the metric
Budget spent
Click
Conversion
Cost Per Action
Cost Per Click
Cost Per Mille
Impression
Reach
Return on Ad Spend
Was this page helpful?
⌘I
Get a campaign hourly metric
curl --request POST \
--url https://your_a2_service/metric/campaigns_hourly \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"campaign_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"from_datetime": "2023-11-07T05:31:56Z",
"to_datetime": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://your_a2_service/metric/campaigns_hourly"
payload = {
"campaign_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"from_datetime": "2023-11-07T05:31:56Z",
"to_datetime": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
campaign_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
from_datetime: '2023-11-07T05:31:56Z',
to_datetime: '2023-11-07T05:31:56Z'
})
};
fetch('https://your_a2_service/metric/campaigns_hourly', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://your_a2_service/metric/campaigns_hourly",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'campaign_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'from_datetime' => '2023-11-07T05:31:56Z',
'to_datetime' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your_a2_service/metric/campaigns_hourly"
payload := strings.NewReader("{\n \"campaign_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"from_datetime\": \"2023-11-07T05:31:56Z\",\n \"to_datetime\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://your_a2_service/metric/campaigns_hourly")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"campaign_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"from_datetime\": \"2023-11-07T05:31:56Z\",\n \"to_datetime\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your_a2_service/metric/campaigns_hourly")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"campaign_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"from_datetime\": \"2023-11-07T05:31:56Z\",\n \"to_datetime\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body[
{
"ad_revenue": 123,
"cid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"tagid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z",
"budget_spent": 0,
"click": 0,
"conversion": 0,
"cpa": 0,
"cpc": 0,
"cpm": 0,
"impression": 0,
"reach": 0,
"roas": 0
}
]{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}